<?php
namespace ImiApp\Module\Member\Model\Base;

use Imi\Model\Model as Model;
use Imi\Model\Annotation\DDL;
use Imi\Model\Annotation\Table;
use Imi\Model\Annotation\Column;
use Imi\Model\Annotation\Entity;

/**
 * 商品管理 基类
 * @Entity
 * @Table(name="fa_pro", id={"id"})
 * @DDL("CREATE TABLE `fa_pro` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `status` enum('0','1') DEFAULT '1' COMMENT '状态:0=下架,1=上架',
  `procate_id` int(10) DEFAULT NULL COMMENT '分类id',
  `name` varchar(255) DEFAULT NULL COMMENT '产品名称',
  `images` varchar(2555) DEFAULT NULL COMMENT '商品图集',
  `image` varchar(255) DEFAULT NULL COMMENT '商品主图',
  `description` varchar(255) DEFAULT NULL COMMENT '简介',
  `discount_switch` tinyint(1) DEFAULT '0' COMMENT '促销开关',
  `fine_switch` tinyint(1) DEFAULT '0' COMMENT '精品',
  `price` decimal(10,2) DEFAULT '0.00' COMMENT '最低价格',
  `vip_price` decimal(10,2) DEFAULT '0.00' COMMENT '会员价格',
  `pro_ids` varchar(255) DEFAULT NULL COMMENT '相关产品推荐',
  `tag_ids` varchar(255) DEFAULT NULL COMMENT '标签id',
  `sales` int(10) DEFAULT NULL COMMENT '销量',
  `content` longtext COMMENT '商品详情',
  `param_content` text COMMENT '参数内容',
  `view` int(10) DEFAULT '0' COMMENT '点击数',
  `weigh` int(10) DEFAULT NULL COMMENT '权重',
  `weight` decimal(10,3) DEFAULT '0.000' COMMENT '重量kg',
  `createtime` int(10) DEFAULT NULL COMMENT '创建时间',
  `updatetime` int(10) DEFAULT NULL COMMENT '修改时间',
  `deletetime` int(10) DEFAULT NULL COMMENT '删除时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品管理'")
 * @property int $id 
 * @property string $status 状态:0=下架,1=上架
 * @property int $procateId 分类id
 * @property string $name 产品名称
 * @property string $images 商品图集
 * @property string $image 商品主图
 * @property string $description 简介
 * @property int $discountSwitch 促销开关
 * @property int $fineSwitch 精品
 * @property float $price 最低价格
 * @property float $vipPrice 会员价格
 * @property string $proIds 相关产品推荐
 * @property string $tagIds 标签id
 * @property int $sales 销量
 * @property string $content 商品详情
 * @property string $paramContent 参数内容
 * @property int $view 点击数
 * @property int $weigh 权重
 * @property float $weight 重量kg
 * @property int $createtime 创建时间
 * @property int $updatetime 修改时间
 * @property int $deletetime 删除时间
 */
abstract class ProBase extends Model
{
    /**
     * id
     * @Column(name="id", type="int", length=10, accuracy=0, nullable=false, default="", isPrimaryKey=true, primaryKeyIndex=0, isAutoIncrement=true)
     * @var int
     */
    protected $id;

    /**
     * 获取 id
     *
     * @return int
     */ 
    public function getId()
    {
        return $this->id;
    }

    /**
     * 赋值 id
     * @param int $id id
     * @return static
     */ 
    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }

    /**
     * 状态:0=下架,1=上架
     * status
     * @Column(name="status", type="enum", length=0, accuracy=0, nullable=true, default="1", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $status;

    /**
     * 获取 status - 状态:0=下架,1=上架
     *
     * @return string
     */ 
    public function getStatus()
    {
        return $this->status;
    }

    /**
     * 赋值 status - 状态:0=下架,1=上架
     * @param string $status status
     * @return static
     */ 
    public function setStatus($status)
    {
        $this->status = $status;
        return $this;
    }

    /**
     * 分类id
     * procate_id
     * @Column(name="procate_id", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $procateId;

    /**
     * 获取 procateId - 分类id
     *
     * @return int
     */ 
    public function getProcateId()
    {
        return $this->procateId;
    }

    /**
     * 赋值 procateId - 分类id
     * @param int $procateId procate_id
     * @return static
     */ 
    public function setProcateId($procateId)
    {
        $this->procateId = $procateId;
        return $this;
    }

    /**
     * 产品名称
     * name
     * @Column(name="name", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $name;

    /**
     * 获取 name - 产品名称
     *
     * @return string
     */ 
    public function getName()
    {
        return $this->name;
    }

    /**
     * 赋值 name - 产品名称
     * @param string $name name
     * @return static
     */ 
    public function setName($name)
    {
        $this->name = $name;
        return $this;
    }

    /**
     * 商品图集
     * images
     * @Column(name="images", type="varchar", length=2555, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $images;

    /**
     * 获取 images - 商品图集
     *
     * @return string
     */ 
    public function getImages()
    {
        return $this->images;
    }

    /**
     * 赋值 images - 商品图集
     * @param string $images images
     * @return static
     */ 
    public function setImages($images)
    {
        $this->images = $images;
        return $this;
    }

    /**
     * 商品主图
     * image
     * @Column(name="image", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $image;

    /**
     * 获取 image - 商品主图
     *
     * @return string
     */ 
    public function getImage()
    {
        return $this->image;
    }

    /**
     * 赋值 image - 商品主图
     * @param string $image image
     * @return static
     */ 
    public function setImage($image)
    {
        $this->image = $image;
        return $this;
    }

    /**
     * 简介
     * description
     * @Column(name="description", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $description;

    /**
     * 获取 description - 简介
     *
     * @return string
     */ 
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * 赋值 description - 简介
     * @param string $description description
     * @return static
     */ 
    public function setDescription($description)
    {
        $this->description = $description;
        return $this;
    }

    /**
     * 促销开关
     * discount_switch
     * @Column(name="discount_switch", type="tinyint", length=1, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $discountSwitch;

    /**
     * 获取 discountSwitch - 促销开关
     *
     * @return int
     */ 
    public function getDiscountSwitch()
    {
        return $this->discountSwitch;
    }

    /**
     * 赋值 discountSwitch - 促销开关
     * @param int $discountSwitch discount_switch
     * @return static
     */ 
    public function setDiscountSwitch($discountSwitch)
    {
        $this->discountSwitch = $discountSwitch;
        return $this;
    }

    /**
     * 精品
     * fine_switch
     * @Column(name="fine_switch", type="tinyint", length=1, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $fineSwitch;

    /**
     * 获取 fineSwitch - 精品
     *
     * @return int
     */ 
    public function getFineSwitch()
    {
        return $this->fineSwitch;
    }

    /**
     * 赋值 fineSwitch - 精品
     * @param int $fineSwitch fine_switch
     * @return static
     */ 
    public function setFineSwitch($fineSwitch)
    {
        $this->fineSwitch = $fineSwitch;
        return $this;
    }

    /**
     * 最低价格
     * price
     * @Column(name="price", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var float
     */
    protected $price;

    /**
     * 获取 price - 最低价格
     *
     * @return float
     */ 
    public function getPrice()
    {
        return $this->price;
    }

    /**
     * 赋值 price - 最低价格
     * @param float $price price
     * @return static
     */ 
    public function setPrice($price)
    {
        $this->price = $price;
        return $this;
    }

    /**
     * 会员价格
     * vip_price
     * @Column(name="vip_price", type="decimal", length=10, accuracy=2, nullable=true, default="0.00", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var float
     */
    protected $vipPrice;

    /**
     * 获取 vipPrice - 会员价格
     *
     * @return float
     */ 
    public function getVipPrice()
    {
        return $this->vipPrice;
    }

    /**
     * 赋值 vipPrice - 会员价格
     * @param float $vipPrice vip_price
     * @return static
     */ 
    public function setVipPrice($vipPrice)
    {
        $this->vipPrice = $vipPrice;
        return $this;
    }

    /**
     * 相关产品推荐
     * pro_ids
     * @Column(name="pro_ids", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $proIds;

    /**
     * 获取 proIds - 相关产品推荐
     *
     * @return string
     */ 
    public function getProIds()
    {
        return $this->proIds;
    }

    /**
     * 赋值 proIds - 相关产品推荐
     * @param string $proIds pro_ids
     * @return static
     */ 
    public function setProIds($proIds)
    {
        $this->proIds = $proIds;
        return $this;
    }

    /**
     * 标签id
     * tag_ids
     * @Column(name="tag_ids", type="varchar", length=255, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $tagIds;

    /**
     * 获取 tagIds - 标签id
     *
     * @return string
     */ 
    public function getTagIds()
    {
        return $this->tagIds;
    }

    /**
     * 赋值 tagIds - 标签id
     * @param string $tagIds tag_ids
     * @return static
     */ 
    public function setTagIds($tagIds)
    {
        $this->tagIds = $tagIds;
        return $this;
    }

    /**
     * 销量
     * sales
     * @Column(name="sales", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $sales;

    /**
     * 获取 sales - 销量
     *
     * @return int
     */ 
    public function getSales()
    {
        return $this->sales;
    }

    /**
     * 赋值 sales - 销量
     * @param int $sales sales
     * @return static
     */ 
    public function setSales($sales)
    {
        $this->sales = $sales;
        return $this;
    }

    /**
     * 商品详情
     * content
     * @Column(name="content", type="longtext", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $content;

    /**
     * 获取 content - 商品详情
     *
     * @return string
     */ 
    public function getContent()
    {
        return $this->content;
    }

    /**
     * 赋值 content - 商品详情
     * @param string $content content
     * @return static
     */ 
    public function setContent($content)
    {
        $this->content = $content;
        return $this;
    }

    /**
     * 参数内容
     * param_content
     * @Column(name="param_content", type="text", length=0, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var string
     */
    protected $paramContent;

    /**
     * 获取 paramContent - 参数内容
     *
     * @return string
     */ 
    public function getParamContent()
    {
        return $this->paramContent;
    }

    /**
     * 赋值 paramContent - 参数内容
     * @param string $paramContent param_content
     * @return static
     */ 
    public function setParamContent($paramContent)
    {
        $this->paramContent = $paramContent;
        return $this;
    }

    /**
     * 点击数
     * view
     * @Column(name="view", type="int", length=10, accuracy=0, nullable=true, default="0", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $view;

    /**
     * 获取 view - 点击数
     *
     * @return int
     */ 
    public function getView()
    {
        return $this->view;
    }

    /**
     * 赋值 view - 点击数
     * @param int $view view
     * @return static
     */ 
    public function setView($view)
    {
        $this->view = $view;
        return $this;
    }

    /**
     * 权重
     * weigh
     * @Column(name="weigh", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $weigh;

    /**
     * 获取 weigh - 权重
     *
     * @return int
     */ 
    public function getWeigh()
    {
        return $this->weigh;
    }

    /**
     * 赋值 weigh - 权重
     * @param int $weigh weigh
     * @return static
     */ 
    public function setWeigh($weigh)
    {
        $this->weigh = $weigh;
        return $this;
    }

    /**
     * 重量kg
     * weight
     * @Column(name="weight", type="decimal", length=10, accuracy=3, nullable=true, default="0.000", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var float
     */
    protected $weight;

    /**
     * 获取 weight - 重量kg
     *
     * @return float
     */ 
    public function getWeight()
    {
        return $this->weight;
    }

    /**
     * 赋值 weight - 重量kg
     * @param float $weight weight
     * @return static
     */ 
    public function setWeight($weight)
    {
        $this->weight = $weight;
        return $this;
    }

    /**
     * 创建时间
     * createtime
     * @Column(name="createtime", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $createtime;

    /**
     * 获取 createtime - 创建时间
     *
     * @return int
     */ 
    public function getCreatetime()
    {
        return $this->createtime;
    }

    /**
     * 赋值 createtime - 创建时间
     * @param int $createtime createtime
     * @return static
     */ 
    public function setCreatetime($createtime)
    {
        $this->createtime = $createtime;
        return $this;
    }

    /**
     * 修改时间
     * updatetime
     * @Column(name="updatetime", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $updatetime;

    /**
     * 获取 updatetime - 修改时间
     *
     * @return int
     */ 
    public function getUpdatetime()
    {
        return $this->updatetime;
    }

    /**
     * 赋值 updatetime - 修改时间
     * @param int $updatetime updatetime
     * @return static
     */ 
    public function setUpdatetime($updatetime)
    {
        $this->updatetime = $updatetime;
        return $this;
    }

    /**
     * 删除时间
     * deletetime
     * @Column(name="deletetime", type="int", length=10, accuracy=0, nullable=true, default="", isPrimaryKey=false, primaryKeyIndex=-1, isAutoIncrement=false)
     * @var int
     */
    protected $deletetime;

    /**
     * 获取 deletetime - 删除时间
     *
     * @return int
     */ 
    public function getDeletetime()
    {
        return $this->deletetime;
    }

    /**
     * 赋值 deletetime - 删除时间
     * @param int $deletetime deletetime
     * @return static
     */ 
    public function setDeletetime($deletetime)
    {
        $this->deletetime = $deletetime;
        return $this;
    }

}
